package com.example.server.service.admin;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.server.common.constant.Result;
import com.example.server.entity.Menu;
import com.example.server.vo.ButtonVO;
import com.example.server.vo.MenuVO;

/**
 * @author china.fuyao@outlook.com
 * @date 2020-04-19 15:20
 */
public interface MenuService extends IService<Menu> {
    /**
     * 菜单列表
     *
     * @param force
     * @return
     */
    Result menuList(Integer force);

    /**
     * 菜单按钮列表
     *
     * @return
     */
    Result buttonList();

    /**
     * 指定角色菜单列表
     *
     * @param roleId
     * @param force
     * @return
     */
    Result menuListByRoleId(Integer roleId, Integer force);

    /**
     * 全部按钮列表
     *
     * @return
     */
    Result buttonAllList();

    /**
     * 新增菜单
     *
     * @param menuVO
     * @param customerId
     * @return
     */
    Result addMenu(MenuVO menuVO, Integer customerId);

    /**
     * 修改菜单
     *
     * @param menuVO
     * @param customerId
     * @return
     */
    Result updateMenu(MenuVO menuVO, Integer customerId);

    /**
     * 删除菜单
     *
     * @param menuId
     * @param customerId
     * @return
     */
    Result delMenu(Integer menuId, Integer customerId);

    /**
     * 新增按钮
     *
     * @param buttonVO
     * @param customerId
     * @return
     */
    Result addButton(ButtonVO buttonVO, Integer customerId);

    /**
     * 修改按钮
     *
     * @param buttonVO
     * @param customerId
     * @return
     */
    Result updateButton(ButtonVO buttonVO, Integer customerId);

    /**
     * 删除按钮
     *
     * @param buttonId
     * @param customerId
     * @return
     */
    Result delButton(Integer buttonId, Integer customerId);
}
